#include<stdio.h>
int a[20][20];
int f(int x,int y)
{
	if(a[x][y])
	return a[x][y];//这一步是关键一部，可以减少时间，如果a[x][y]已经有值就可以直接输出
	if(y==0)//先判断操作数序列还有没有值
	return 1;
	else if(x==0&&y==1)//这是下面的一种特殊情况，必须考虑；保证y-1!<0
	return 1;
	else if(x==0)//这可不是特殊情况，每个分支都有可能面对这种情况,保证x-1!<0
	{
		x++;
		y--;
	}
	return a[x][y]=f(x-1,y)+f(x+1,y-1);
}
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",f(1,n-1));
	return 0;
}